﻿package com.alstudio.utils.android.net.http;

import android.os.Bundle;

import com.alstudio.module.recharge.ChargeHttpRqWrap;
import com.alstudio.module.recharge.ComintChargeOrderHttpResultWrap;

public final class HttpDataAsynHelper {
	private static String TAG = "HttpDataAsynHelper";

	public interface Callback {
		/**
		 * 方法调用成功时调用此回调
		 * 
		 * @param data
		 */
		void onSuccess(Bundle data);

		/**
		 * 方法调用成功时调用此回调
		 * 
		 * @param data
		 */
		void onSuccess(HttpResultWrap data);

		/**
		 * 方法调用失败时调用此回调
		 * 
		 * @param data
		 */
		void onError(Exception e);
	}

	public static void forgotPasswordMail(final String email,
			final Callback callback) {

		new Thread() {

			@Override
			public void run() {
				boolean isFind = HttpDataHelper.forgotPasswordMail(email);

				Bundle data = new Bundle();
				data.putBoolean("isfind", isFind);
				callback.onSuccess(data);

			}
		}.start();
	}

	/**
	 * 
	 * @param data
	 * @param callback
	 * 
	 *            <p>
	 *            调用成功返回数据类型：HttpResultWrap
	 *            </p>
	 *            <p>
	 *            调用失败返回数据：<br/>
	 *            exception : Exception<br/>
	 *            </p>
	 */
//	public static void requestSendGift(final SendGiftHttpRqWrap data,
//			final Callback callback) {
//		new Thread() {
//			@Override
//			public void run() {
//				HttpSendGiftResult result = null;
//				try {
//					result = HttpDataHelper.requestSendGift(data);
//				} catch (Exception e) {
//					// 失败
//					if (callback != null) {
//						callback.onError(e);
//					}
//
//					return;
//				}
//
//				// 成功
//				if (callback != null) {
//					callback.onSuccess(result);
//				}
//			}
//		}.start();
//	}

	/**
	 * 
	 * @param data
	 * @param callback
	 * 
	 *            <p>
	 *            调用成功返回数据类型：HttpResultWrap
	 *            </p>
	 *            <p>
	 *            调用失败返回数据：<br/>
	 *            exception : Exception<br/>
	 *            </p>
	 */
	public static void requestBuyPrivilege(final BuyPrivilegeHttpRqWrap data,
			final Callback callback) {
		new Thread() {
			@Override
			public void run() {
				BuyPrivilegeResult result = null;
				try {
					result = HttpDataHelper.requestBuyPrivilege(data);
				} catch (Exception e) {
					// 失败
					if (callback != null) {
						callback.onError(e);
					}

					return;
				}

				// 成功
				if (callback != null) {
					callback.onSuccess(result);
				}
			}
		}.start();
	}

	/**
	 * 
	 * @param data
	 * @param callback
	 * 
	 *            <p>
	 *            调用成功返回数据类型：GoldAwardHttpRqWrap
	 *            </p>
	 *            <p>
	 *            调用失败返回数据：<br/>
	 *            exception : Exception<br/>
	 *            </p>
	 */
//	public static void requestGoldAward(final GoldAwardHttpRqWrap data,
//			final Callback callback) {
//		new Thread() {
//			@Override
//			public void run() {
//				HttpResultWrap result = null;
//				try {
//					result = HttpDataHelper.requestGoldAward(data);
//				} catch (Exception e) {
//					// 失败
//					if (callback != null) {
//						callback.onError(e);
//					}
//
//					return;
//				}
//
//				if (callback != null) {
//					callback.onSuccess(result);
//				}
//			}
//		}.start();
//	}


	/**
	 * 
	 * 
	 * @param data
	 * @param callback
	 * 
	 *            <p>
	 *            调用成功返回数据类型：GoogleChargeHttpResultWrap
	 *            </p>
	 *            <p>
	 *            调用失败返回数据：<br/>
	 *            exception : Exception<br/>
	 *            </p>
	 */
	public static void requestUploadYeepayOrder(final ChargeHttpRqWrap data,
			final Callback callback) {
		new Thread() {
			@Override
			public void run() {
				ComintChargeOrderHttpResultWrap result = null;
				try {
					result = HttpDataHelper.requestUploadYeepayOrder(data);
				} catch (Exception e) {
					// 失败
					if (callback != null) {
						callback.onError(e);
					}

					return;
				}

				if (callback != null) {
					callback.onSuccess(result);
				}
			}
		}.start();
	}

	/**
	 * 
	 * @param data
	 * @param callback
	 * 
	 *            <p>
	 *            调用成功返回数据类型：GoogleChargeHttpResultWrap
	 *            </p>
	 *            <p>
	 *            调用失败返回数据：<br/>
	 *            exception : Exception<br/>
	 *            </p>
	 */
	public static void requestUploadAlipayOrder(final ChargeHttpRqWrap data,
			final Callback callback) {
		new Thread() {
			@Override
			public void run() {
				ComintChargeOrderHttpResultWrap result = null;
				try {
					result = HttpDataHelper.requestUploadAlipayOrder(data);
				} catch (Exception e) {
					// 失败
					if (callback != null) {
						callback.onError(e);
					}

					return;
				}

				if (callback != null) {
					callback.onSuccess(result);
				}
			}
		}.start();
	}

	/**
	 * 
	 * @param data
	 * @param callback
	 * 
	 *            <p>
	 *            调用成功返回数据类型：GoogleChargeHttpResultWrap
	 *            </p>
	 *            <p>
	 *            调用失败返回数据：<br/>
	 *            exception : Exception<br/>
	 *            </p>
	 */
	public static void requestRechargeStatus(final ChargeHttpRqWrap data,
			final Callback callback) {
		new Thread() {
			@Override
			public void run() {
				ComintChargeOrderHttpResultWrap result = null;
				try {
					result = HttpDataHelper.requestRechargeStatus(data);
				} catch (Exception e) {
					// 失败
					if (callback != null) {
						callback.onError(e);
					}

					return;
				}

				if (callback != null) {
					callback.onSuccess(result);
				}
			}
		}.start();
	}

	// /**
	// *
	// * @param data
	// * @param callback
	// *
	// * <p>
	// * 调用成功返回数据类型：GetMissionAwardResult
	// * </p>
	// * <p>
	// * 调用失败返回数据：<br/>
	// * exception : Exception<br/>
	// * </p>
	// */
	// public static void requestMissionAward(final MissionAwardHttpRqWrap data,
	// final Callback callback) {
	// new Thread() {
	// @Override
	// public void run() {
	// GetMissionAwardResult result = null;
	// try {
	// result = HttpDataHelper.requestMissonAward(data);
	// } catch (Exception e) {
	// // 失败
	// if (callback != null) {
	// callback.onError(e);
	// }
	//
	// return;
	// }
	//
	// if (callback != null) {
	// callback.onSuccess(result);
	// }
	// }
	// }.start();
	// }

//	public static void translateDataRequest(final String username,
//			final String token) {
//		new Thread() {
//			public void run() {
//
//				HttpDataHelper.transDataRequest(username, token);
//			};
//		}.start();
//	}

//	public static void translateIntimateFriendRequest(final String username,
//			final String token) {
//		new Thread() {
//			public void run() {
//
//				HttpDataHelper.transIntimateFriendRequest(username, token);
//			};
//		}.start();
//	}

//	public static void newFinishTaskRequest(final String username,
//			final String token, final String taskid, final String channel,
//			final Callback callback) {
//		new Thread() {
//			public void run() {
//
//				try {
//					HttpDataHelper.newFinishTaskRequest(username, token,
//							taskid, channel);
//				} catch (Exception e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//					// 失败
//					if (callback != null) {
//						callback.onError(e);
//					}
//
//					return;
//				}
//
//				if (callback != null) {
//					callback.onSuccess(new HttpResultWrap());
//				}
//			};
//		}.start();
//	}

//	public static void activateUserRequest(final String token,
//			final String imei, final String mac) {
//		new Thread() {
//			public void run() {
//				HttpDataHelper.activateUserRequest(token, imei, mac);
//			};
//		}.start();
//	}

	// /**
	// *
	// * @param data
	// * @param callback
	// *
	// * <p>
	// * 调用成功返回数据类型：GetMissionAwardResult
	// * </p>
	// * <p>
	// * 调用失败返回数据：<br/>
	// * exception : Exception<br/>
	// * </p>
	// */
	// public static void requestNewMissionAward(
	// final MissionAwardHttpRqWrap data, final Callback callback) {
	// new Thread() {
	// @Override
	// public void run() {
	// GetMissionAwardResult result = null;
	// try {
	// result = HttpDataHelper.requestNewMissonAward(data);
	// } catch (Exception e) {
	// // 失败
	// if (callback != null) {
	// callback.onError(e);
	// }
	//
	// return;
	// }
	//
	// if (callback != null) {
	// callback.onSuccess(result);
	// }
	// }
	// }.start();
	// }

}
